package main

import "fmt"

func main() {
	slice0 := new([]int)
	fmt.Printf("%T %v %d %d\n", *slice0, *slice0, len(*slice0), cap(*slice0))
	fmt.Println("-----------------------------------------------")

	var slice1 = make([]int, 3, 5)
	fmt.Printf("%T %v %d %d\n", slice1, slice1, len(slice1), cap(slice1))
	fmt.Println("-----------------------------------------------")

	var slice2 []int
	slice2 = append(slice2, 1, 2, 3, 4, 5, 6, 67)
	fmt.Printf("%T %v %d %d\n", slice2, slice2, len(slice2), cap(slice2))
	fmt.Println("-----------------------------------------------")

	slice3 := append([]byte("hello "), []byte("world")...)
	fmt.Printf("%T %v %d %d\n", slice3, slice3, len(slice3), cap(slice3))
	fmt.Println("-----------------------------------------------")
	var slice4 = make([]int, len(slice2), len(slice2))
	copyed := copy(slice4, slice2)
	slice4[0] = 11
	fmt.Printf("%T %v %v %d %d\n", slice4, slice4, copyed, len(slice4), cap(slice4))
}
